블로그 릴레이 - AWS RI의 사용 기록 상세하기 확인하기
안녕하세요.
AWS 사업 본부의 이수재입니다.
본 블로그는 당사의 한국어 블로그 릴레이의 아홉 번째 블로그입니다.
이번 블로그의 주제는「AWS RI의 사용 기록 상세하기 확인하기」입니다.
구매한 RI의 비용, 미사용 시간, 어느 인스턴스에 사용되었는지 등을 확인하는 방법에 대해 알아봅니다.
Cost Explorer에서 확인하기
콘솔에서 가장 빠르게 확인할 수 있는 방법으로는 Cost Explorer[1] 가 있습니다.
해당 서비스는 기본적으로 AWS 상의 전반적인 비용에 대해 확인할 수 있는 서비스입니다.
그 중 RI나 SP의 비용 등도 확인할 수 있습니다.
콘솔 기준 왼쪽 사이드바에서 예약(Reservation)에서 확인 가능하며
권장 사항(Recommandations), 사용률(Utilization), 충당률(Coverage) 등을 확인할 수 있습니다.
각 기능에서 csv 형식으로 보고서를 다운받아서 활용할수도 있습니다.
사용률 보고서
사용률에서는 구매한 RI에서 각 서비스별 평균 사용률 비용을 확인할 수 있습니다.
각 비용이 의미하는 내용은 다음과 같습니다.
- 유효 예약 비용(Effective reservation cost): 구매한 RI의 선불 비용 및 반복적으로 청구되는 비용의 합산
- 상응하는 온디맨드 비용(On-Demand cost equivalent): 구매한 RI의 총 시간을 온디맨드로 환산한 비용
- 총 순 절감액(Total net savings): 상응하는 온디맨드 비용 - 유효 예약 비용 의 결과 값. 즉, 온디맨드에 비해 절약한 금액
- 총 잠재적 비용 절감(Total potential savings): 모든 사용량을 완전히 RI로 커버할 경우 잠재적인 절약 가능한 금액
아래 이미지에서는 24년 5월부터 7월까지 EC2 RI의 전체적인 사용률을 확인할 수 있습니다.
아래 쪽의 RI 목록에서 각 RI의 상세한 내용을 확인할 수 있습니다.
기본적으로 표시되는 항목 이외에 설정 아이콘을 눌러 필요한 항목을 추가할 수 있습니다.
항목이 꽤나 많기 때문에 각 항목에 대한 상세한 해석은 공식 문서를 확인해주세요.
특히 사용률, 사용한 예약 시간, 사용하지 않은 예약 시간, 순 절감액 등을 확인하는 경우가 많습니다.
사용률이 낮은 RI는 구매한 RI가 모두 사용되지 않은 경우를 뜻합니다.
Ri 구매 당시의 계획과 다르게 RI에 해당하는 인스턴스 타입의 사용 시간이 감소되면 RI가 남아 사용률이 낮아지게 됩니다.
계획된 사용률 저하라면 RI의 만료 후 다른 RI로 교체를 기다릴 수 밖에 없지만 만약 계획되지 않은 사용률 저하라면 재검토가 필요하다고 생각합니다.
충당률 보고서
사용 중인 인스턴스 타입의 사용 시간에서 RI가 얼마나 적용되고 있는지를 확인할 수 있습니다.
충당률이 100%가 되지않은 인스턴스 타입이라면 RI를 구매하여 비용 효율적인 환경 운용이 가능합니다.
즉, 100%가 되지 않은 시간이 위에서 설명한 잠재적 비용 절감에 해당합니다.
권장 사항
각 서비스에서 최근 일정 기간 동안의 사용시간을 바탕으로 구매를 권장하는 RI를 확인할 수 있습니다.
7일, 30일, 60일 동안의 사용 시간을 기준으로 할 수 있습니다.
기준에 따라서 권장 사항이 크게 바뀔 수 있습니다.
어디까지나 사용시간을 바탕으로 하는 권장 사항이기 때문에 참고용으로 확인하고 실제로 운용중인 환경의 가동 시간이나 앞으로의 운용 계획 등을 검토하여 RI 구매를 진행하는 것이 좋습니다.
CUR 로 확인하기
CostExplorer는 RI를 대상으로 비용 등을 확인할 수 있었습니다.
반대로 이 RI가 어느 인스턴스에 적용되었는지 얼마나 적용되었는지 상세한 내용까지는 포함하고 있지 않습니다.
만약 이런 상세한 내용까지 확인이 필요하다면 CUR을 생성하여 확인해볼 수 있습니다.
이 글에서는 어떤 RI가 어느 인스턴스에 얼마나 적용되었는지를 확인하는 방법을 확인합니다.
CUR 생성
CUR은 CostExplorer 의 레거시 페이지에서 생성할 수 있습니다.
생성 자체는 간단하니 공식 문서를 참고해주세요.
CUR을 생성할 때 고려할 점은 데이터 수집 시간(데이터 시간 세부 수준 보고)를 한 시간으로 하면 보고서에 추가되는 데이터가 리소스 양에 따라 꽤 많아 집니다.
따라서 하루 정도의 정밀도가 필요하시다면 하루로 하시는 것을 추천합니다.
보고서 버전 관리에서는 새로운 보고서 만들기로 설정하는 경우 S3 비용이 점점 증가할 수 있기 때문에 기존의 데이터가 별도로 필요한게 아니라면 기존 보고서 덮어쓰기로 설정하는 것을 추천합니다.
CUR에 포함되는 데이터가 많습니다.
CUR의 모든 항목에 대한 내용은 공식 문서를 참고해주세요.
CUR에서 RI 특정하기
우선 CUR에서 대상으로 할 RI의 정보를 확인합니다.
확인할 항목과 확인하는 내용은 아래와 같습니다.
- lineItem/UsageAccountId : 어느 계정이 RI를 가지고 있는지
- lineItem/LineItemType : RI Fee 가 기재되어 있는 항목인지
- 해당 월의 첫 날에 기록되며 매월 반복되는 RI를 말합니다
- 즉, 청구되는 RI가 해당 월에 어느 정도의 시간을 가지고 있는지 확인할 수 있습니다
- lineItem/UsageStartDate와 lineItem/UsageEndDate : 해당 항목이 유효한 시간대
- 즉, 언제부터 언제까지 적용된 항목인지를 의미합니다
- lineItem/ProductCode : 어느 서비스를 대상으로 하는지
- lineItem/UsageType : 인스턴스 타입은 무엇인지
- Lineitem/UsageAmount : 항목이 유효한 시간동안 배정된 RI 시간(= 사용가능한 RI 시간)
- lineItem/NormalizedUsageAmount : 정규화 한 사용 가능한 시간
- 정규화 계수는 lineItem/NormalizationFactor 에 기재되어 있습니다.
- Lineitem/UsageAmount X lineItem/NormalizationFactor = lineItem/NormalizedUsageAmount 입니다
- Reservation/ReservationARN : RI를 구분하기 위한 RI의 ARN
identity/TimeInterval | lineItem/LineItemType | lineItem/UsageStartDate | lineItem/UsageEndDate | lineItem/ProductCode | lineItem/UsageType | lineItem/UsageAmount | lineItem/NormalizationFactor | lineItem/NormalizedUsageAmount | reservation/ReservationARN |
---|---|---|---|---|---|---|---|---|---|
2024-07-01T00:00:00Z/2024-07-02T01:00:26Z | RIFee | 2024-07-01T00:00:00Z | 2024-07-02T01:00:26Z | AmazonEC2 | APN1-HeavyUsage:t3.nano | 25.007222 | 0.25 | 6.2518055 | arn:aws:ec2:ap-northeast-2:1234567890:reserved-instances/aa-bb-cc-dd-ee |
예로 들면 위의 표를 기준으로 생각하면 다음과 같이 생각할 수 있습니다.
- RI Fee이므로 7월의 첫 날에 적용되는 RI
- 대상 시간대는 1일 00시 부터 2일 01시 까지
- 서비스는 EC2
- 인스턴스 타입은 t3.nano
- 사용할 수 있는 시간은 25시간이고 계수는 0.25니까 6.25 시간 사용가능하다
- arn은 aa-bb-cc-dd-ee
RI가 적용된 EC2 확인
대상으로 할 RI를 확인했다면 이어서 해당 RI가 적용된 EC2를 확인합니다.
아래 항목의 확인이 필요합니다.
- lineItem/UsageAccountId : 어느 계정에서 서비스가 실행되었는지
- lineItem/LineItemType : DiscountedUsage 가 기록된 항목
- RI가 적용된 시간을 의미합니다
- lineItem/UsageStartDate와 lineItem/UsageEndDate : 해당 항목이 유효한 시간대
- 즉, 언제부터 언제까지 적용된 항목인지를 의미합니다
- lineItem/ProductCode : 어느 서비스를 대상으로 하는지
- lineItem/UsageType : 인스턴스 타입은 무엇인지
- Lineitem/UsageAmount : 항목이 유효한 시간동안 배정된 RI 시간(= 사용가능한 RI 시간)
- lineItem/NormalizedUsageAmount : 정규화 한 사용 가능한 시간
- Reservation/ReservationARN : 적용된 RI의 ARN
identity/TimeInterval | lineItem/LineItemType | lineItem/UsageStartDate | lineItem/UsageEndDate | lineItem/ProductCode | lineItem/UsageType | lineItem/UsageAmount | lineItem/NormalizationFactor | lineItem/NormalizedUsageAmount | reservation/ReservationARN |
---|---|---|---|---|---|---|---|---|---|
2024-07-01T00:00:00Z/2024-07-02T01:00:00Z | DiscountedUsage | 2024-07-01T00:00:00Z | 2024-07-02T01:00:26Z | AmazonEC2 | APN1-BoxUsage:t3.micro | 12.5 | 0.5 | 6.25 | arn:aws:ec2:ap-northeast-2:1234567890:reserved-instances/aa-bb-cc-dd-ee |
위의 표를 기준으로 생각하면 다음과 같이 생각할 수 있습니다.
- DiscountedUsage 이므로 RI가 적용된 사용량
- 대상 시간대는 1일 00시 부터 2일 01시 까지
- 서비스는 EC2
- 인스턴스 타입은 t3.nano
- 사용한 시간은 12.5시간이고 계수는 0.5니까 정규화 된 사용시간은 6.25 시간 사용했다
- arn은 aa-bb-cc-dd-ee
RI가 적용된 시간 확인
위에서 확인한 내용을 바탕으로 아래와 같이 생각할 수 있습니다.
- arn 이 동일
- 서비스 타입이 동일
- 사용량을 감산
- RI의 정규화 된 사용 가능한 시간 : 6.25
- EC2의 정규화 된 사용 시간 : 6.25
- 6.25 - 6.25 = 0
따라서 aa-bb-cc-dd arn의 RI는 모든 시간을 소모했다는 것을 확인할 수 있습니다.
마무리
RI에 대해 비용을 바탕으로 확인하는 방법과 CUR을 이용하여 상세한 내용까지 확인하는 방법을 알아보았습니다.
CUR을 이용하는 경우 AWS에서 제공하는 대시보드 템플릿인 Cost Intelligence Dashboard (CID) 를 만들어서 비용을 가시화 하는 것도 가능합니다
이상으로 한국어 블로그 릴레이의 아홉 번째 블로그「AWS RI의 사용 기록 상세하기 확인하기」편이었습니다.
끝까지 읽어주셔서 감사합니다! AWS 사업 본부 이수재였습니다.
그 외 참고 문서
과금 정보 및 비용 관리(Billing and Cost Management) 콘솔을 말합니다. Cost Explorer로 설명하는 경우가 많기 때문에 이 글에서도 동일하게 사용합니다. ↩︎